Новые функции и возможности в FxPlug 3.0.
Самое большое изменение в FxPlug SDK 3.0 является поддержкой игры в песочнице приложения. Эта новая поддержка потребовала изменений в структуре FxPlug, включая то, как это упаковывается, загрузилось и использовало
Права — С введением игры в песочнице приложения, приложения должны перечислить все способы, которыми это может получить доступ к системным ресурсам. Их вызывают правами. Для соображений безопасности каждое из наших хост-приложений обеспечивает только минимальную сумму прав, которые в большинстве случаев могут не быть достаточными для потребностей сторонних разработчиков.
Новая структура приложения — плагины FxPlug переходят от пакета фильтра до комплекта приложений, содержащего два внутренних пакета, названные Встроенными Основными компонентами Принципала и Службы. Это требует изменений в Вашей структуре проекта XCode. Встроенные Основные компоненты Принципала и Службы. Это требует изменений в Вашей структуре проекта XCode.
Новые средства управления — Три новых средств управления доступны:
Кнопки — Позволяют плагину отображать кнопку в инспекторе или HUD и выполнять действие, такое как открытие окна настроек, когда это выведено на экран.
Кнопки справки — Позволяют плагину принимать некоторые меры для отображения содержания справки пользователю.
Меню шрифта — Позволяет плагину отображать список установленных шрифтов, из которых пользователь может выбрать тот.
Пользовательский UI поддерживает для Эффектов Final Cut Pro, содержащих FxPlug плагины на основе 3.
Поддержка мульти-GPU — новое
kFxPropertyKey_IsThreadSafeключ был добавлен, чтобы позволить плагинам создавать и представлять многократные кадры одновременно.Этот новый ключ может быть добавлен к словарю, возвращенному плагином
-propertiesметод с aBOOLзначениеYESуказать к хост-приложению, что безопасно вызвать плагин для рендеринга на многократных потоках одновременно. Этот ключ чрезвычайно полезен при работе машин с многократным GPUs, потому что они могут представить один кадр на GPU одновременно, уменьшив рендеринг времен значительно. Когда этот флаг установлен, плагин-getOutputWidth:height:::,-frameSetup:::,-frameCleanup, и-renderOutput:::методы приняты ко всем быть ориентированными на многопотоковое исполнение. Плагины должны заботиться, чтобы гарантировать, чтобы они соблюли правила потокобезопасности, когда они устанавливают этот флаг, потому что повреждение данных или катастрофические отказы могут произойти, если два потока получают доступ к тем же данным одновременно.Для получения дополнительной информации о параллельном OpenGL обратитесь к Руководству по программированию OpenGL для Mac.